export {};

//  namespace 一般在项目中是用不到。 在编写声明文件的时候会被用到
/*
 解决问题： 在一个模块中  需要维护多段逻辑 逻辑中有重名的部分
 策略：1-命令空间可以用来和类级进行合并 
       2-命名空间和函数可以合并
       3-命名空间可以和枚举合并
       4-命名空间和命名空间合并
*/

export namespace Zoo {
  export class Monkey {}
  export namespace Felid {
    export const cat = "猫";
    export const panda = "熊猫";
  }
}
Zoo.Monkey;
Zoo.Felid.cat;
//命令空间可以用来和类，函数，枚举进行合并

// class Home {}
// function Home() {}
// interface Home {
//   b: string;
// }
enum Home {
  a,
  b,
}
namespace Home {
  export class Monkey {}
  export const value = 1;
}
namespace Home {
  export class Monkey1 {}
  export const value1 = 1;
}
Home.Monkey;
Home.value;
// Home.b error
Home.a;
Home.Monkey1;
